
namespace taurus.client{

    /**
     * IScoketLayer
     */
    export interface IScoketLayer{
        /**
         * 连接服务器
         * @param ip
         * @param game
         */
        connect(ip:string,game:string):boolean;

        /**
         *  断开连接
         */
        disconnect():boolean;

        /**
         * 发送消息
         * @param msg
         */
        write(msg:Message);

        /**
         * get Protocl type
         * @return
         */
        getProtocol():ConnectionProtocol;

        /**
         * 设置连接状态回调
         */
        setOnConnect(onConnect:(code:SocketCode)=>void,thisObject:any);

        /**
         * 设置事件消息回调E
         */
        setOnEvent(onEvent:(msg:Message)=>void,thisObject:any);

        /**
         * 网络延时
         */
        getAveragePingTime():number;

        /**
         * 获取服务器Session字符
         */
        getSession():string;

        /**
         * 设置服务器Session字符
         * @param session
         */
        setSession(session:string);
    }
}
